package org.example.controller.SpringBoot300.CSDM;

import org.example.util.file.FileUtil;
import org.example.util.log.Logac;
import org.example.util.log.text.MarkDownUtil;

import java.util.ArrayList;
import java.util.List;

/**
 * @auther admin闫
 * @Descriptopn 初始化CSDN文章代码
 * @date 2024/4/11 19:43
 */


public class InitArctic {
    //阿里云图床路径
    public static String aliyun="https://niliuapp.oss-cn-beijing.aliyuncs.com/CSDN/SpringBoot300/图床";
    //
    public static String muluPath="G:\\300项目整理\\新开\\300+Springboot素材与视频留存";
//    public static String muluPath="G:\\\\CSDN开发测试";





    public static void initArctle(String proname,String ifre){
        List<String> xiaYiPath = FileUtil.getXiaYiPath(muluPath);
        for (String s : xiaYiPath) {//G:\CSDN开发测试\springboot001基于SpringBoot的在线拍卖系统
            List<String> xiaYiPath1 = FileUtil.getXiaYiPath(s);
            String projectFilename = FileUtil.getFileName(s);

            if (proname.equals(projectFilename)){
                System.out.println(projectFilename);
            }else {
                continue;
            }
            StringBuffer arctle=new StringBuffer();
            StringBuffer image=new StringBuffer();
            StringBuffer shuoming=new StringBuffer();
            StringBuffer lunwen=new StringBuffer();
            StringBuffer liebiao=new StringBuffer();
            for (String s1 : xiaYiPath1) {//G:\CSDN开发测试\springboot001基于SpringBoot的在线拍卖系统\运行截图
//------------文章的生成口----------------------------------------------------------------------------------------------
                String fileName = FileUtil.getFileName(s1);
                if (fileName.equals("运行截图")){//这里图片生成逻辑  往下分为后台前台
                    List<String> xiaYiPath2 = FileUtil.getXiaYiPath(s1);
                    for (String s2 : xiaYiPath2) {//s2
                        String s3 = MarkDownUtil.generateHeading2(FileUtil.getFileName(s2) + "运行截图");
                        image.append(s3);//【图片】添加标题
//                        System.out.println(s2);
                        String fileName1 = FileUtil.getFileName(s2);
                        if (fileName1.equals("前台")){
                            List<String> allDGFiles = FileUtil.getAllDGFiles(s2);
//                            System.out.println(s2);
                            for (String allDGFile : allDGFiles) {
                                //把本地路径换成图床路径
                                String cloudUrl=aliyun+"/"+projectFilename+"/"+FileUtil.getFileName(allDGFile);
                                image.append(MarkDownUtil.generateImage(cloudUrl)); //【图片】添加前台图片链接
//                                System.out.println();    // 这里拿到的是前台的图片路径

                            }
                        }else if (fileName1.equals("后台")){
                            List<String> allDGFiles = FileUtil.getAllDGFiles(s2);
//                            System.out.println(s2);
                            for (String allDGFile : allDGFiles) {
                                //把本地路径换成图床路径
                                String cloudUrl=aliyun+"/"+projectFilename+"/"+FileUtil.getFileName(allDGFile);
                                image.append(MarkDownUtil.generateImage(cloudUrl));   //【图片】添加前台图片链接 //【图片】添加后台图片链接
//                                System.out.println(allDGFile);              //这里拿到的后台的图片路径
                            }
                        }else {
                            Logac.log("问题文件："+xiaYiPath2);
                        }
                    }

                } else if (fileName.equals("运行视频")) {//这里暂时不做处理

                }else {//这里面是源码内文件
//                    System.out.println(s1);
                    String liebiaoTitle=MarkDownUtil.generateHeading2("包含的文件列表（含论文）");
                    liebiao.append(liebiaoTitle);
                    List<String> liebiaoFileName=new ArrayList<>();
                    List<String> xiaYiPath2 = FileUtil.getAllFilePaths(s1);
                    for (String s2 : xiaYiPath2) {//包含的所有文件
//                        System.out.println(s2);
                        String fileName1 = FileUtil.getFileName(s2);
                        if (getFileExtension(fileName1).equals("sql")){
                            liebiaoFileName.add("数据库脚本："+fileName1);
                        } else if (getFileExtension(fileName1).equals("doc")) {
                            liebiaoFileName.add("论文："+fileName1);
                        } else if (getFileExtension(fileName1).equals("docx")) {
                            liebiaoFileName.add("论文/文档："+fileName1);
                        } else if (getFileExtension(fileName1).equals("txt")) {
                            liebiaoFileName.add("说明文档："+fileName1);
                        }else {
                            liebiaoFileName.add("其他文件："+fileName1);
                        }
                    }

                    List<String> xiaYiPath3 = FileUtil.getXiaYiPath(s1);
                    for (String s2 : xiaYiPath3) {
                        String fileName1 = FileUtil.getFileName(s2);
                        liebiaoFileName.add("源码文件："+fileName1);
//                        System.out.println(fileName1);
                    }
                    String s2 = MarkDownUtil.generateList(liebiaoFileName);
                    liebiao.append(s2);
                }


            }
//------------文章的输出口--------------------------------------------------------------------------------------------------
//            System.out.println(s);//项目名
            String s1 = MarkDownUtil.generateHeading1(projectFilename);
            arctle.append(s1);
            arctle.append("\n亲测完美运行带论文：获取源码，私信评论或者+v:niliuapp");
            String s2 = "\n\n\n\n\n";
            arctle.append(s2);//换行
            String yunx = MarkDownUtil.generateHeading2("运行视频");
            arctle.append(yunx);
            arctle.append(s2);
            arctle.append(ifre);
            arctle.append(s2);
            arctle.append(liebiao);
            arctle.append(image);
            System.out.println(arctle);

            FileUtil.createAndWriteToFile("H:\\毕业设计工作目录\\batch_processing\\batch_processing\\piantou\\"+projectFilename+".txt",arctle.toString());
        }

    }
    public static void main(String[] args) {
        List<String> xiaYiPath = FileUtil.getXiaYiPath(muluPath);
        for (String s : xiaYiPath) {//G:\CSDN开发测试\springboot001基于SpringBoot的在线拍卖系统
            List<String> xiaYiPath1 = FileUtil.getXiaYiPath(s);
            String projectFilename = FileUtil.getFileName(s);
            System.out.println(projectFilename);
            if (true){
                continue;
            }


            StringBuffer arctle=new StringBuffer();

            StringBuffer image=new StringBuffer();
            StringBuffer shuoming=new StringBuffer();
            StringBuffer lunwen=new StringBuffer();
            StringBuffer liebiao=new StringBuffer();
            for (String s1 : xiaYiPath1) {//G:\CSDN开发测试\springboot001基于SpringBoot的在线拍卖系统\运行截图
//------------文章的生成口----------------------------------------------------------------------------------------------
                String fileName = FileUtil.getFileName(s1);
                if (fileName.equals("运行截图")){//这里图片生成逻辑  往下分为后台前台
                    List<String> xiaYiPath2 = FileUtil.getXiaYiPath(s1);
                    for (String s2 : xiaYiPath2) {//s2
                        String s3 = MarkDownUtil.generateHeading2(FileUtil.getFileName(s2) + "运行截图");
                        image.append(s3);//【图片】添加标题
//                        System.out.println(s2);
                        String fileName1 = FileUtil.getFileName(s2);
                        if (fileName1.equals("前台")){
                            List<String> allDGFiles = FileUtil.getAllDGFiles(s2);
//                            System.out.println(s2);
                            for (String allDGFile : allDGFiles) {
                                //把本地路径换成图床路径
                                String cloudUrl=aliyun+"/"+projectFilename+"/"+FileUtil.getFileName(allDGFile);
                                image.append(MarkDownUtil.generateImage(cloudUrl)); //【图片】添加前台图片链接
//                                System.out.println();    // 这里拿到的是前台的图片路径

                            }
                        }else if (fileName1.equals("后台")){
                            List<String> allDGFiles = FileUtil.getAllDGFiles(s2);
//                            System.out.println(s2);
                            for (String allDGFile : allDGFiles) {
                                //把本地路径换成图床路径
                                String cloudUrl=aliyun+"/"+projectFilename+"/"+FileUtil.getFileName(allDGFile);
                                image.append(MarkDownUtil.generateImage(cloudUrl));   //【图片】添加前台图片链接 //【图片】添加后台图片链接
//                                System.out.println(allDGFile);              //这里拿到的后台的图片路径
                            }
                        }else {
                            Logac.log("问题文件："+xiaYiPath2);
                        }
                    }

                } else if (fileName.equals("运行视频")) {//这里暂时不做处理

                }else {//这里面是源码内文件
//                    System.out.println(s1);
                    String liebiaoTitle=MarkDownUtil.generateHeading2("包含的文件列表（含论文）");
                    liebiao.append(liebiaoTitle);
                    List<String> liebiaoFileName=new ArrayList<>();
                    List<String> xiaYiPath2 = FileUtil.getAllFilePaths(s1);
                    for (String s2 : xiaYiPath2) {//包含的所有文件
//                        System.out.println(s2);
                        String fileName1 = FileUtil.getFileName(s2);
                        if (getFileExtension(fileName1).equals("sql")){
                            liebiaoFileName.add("数据库脚本："+fileName1);
                        } else if (getFileExtension(fileName1).equals("doc")) {
                            liebiaoFileName.add("论文："+fileName1);
                        } else if (getFileExtension(fileName1).equals("docx")) {
                            liebiaoFileName.add("论文/文档："+fileName1);
                        } else if (getFileExtension(fileName1).equals("txt")) {
                            liebiaoFileName.add("说明文档："+fileName1);
                        }else {
                            liebiaoFileName.add("其他文件："+fileName1);
                        }
                    }

                    List<String> xiaYiPath3 = FileUtil.getXiaYiPath(s1);
                    for (String s2 : xiaYiPath3) {
                        String fileName1 = FileUtil.getFileName(s2);
                        liebiaoFileName.add("源码文件："+fileName1);
//                        System.out.println(fileName1);
                    }
                    String s2 = MarkDownUtil.generateList(liebiaoFileName);
                    liebiao.append(s2);
                }


            }
//------------文章的输出口--------------------------------------------------------------------------------------------------
//            System.out.println(s);//项目名
            String s1 = MarkDownUtil.generateHeading1(projectFilename);
            arctle.append(s1);
            arctle.append("\n亲测完美运行带论文：获取源码，私信评论或者+v:niliuapp");
            String s2 = "\n\n\n\n\n";
            arctle.append(s2);//换行
            String yunx = MarkDownUtil.generateHeading2("运行视频");
            arctle.append(yunx);
            arctle.append(s2);
            arctle.append(liebiao);
            arctle.append(image);
            System.out.println(arctle);

            FileUtil.createAndWriteToFile("H:\\毕业设计工作目录\\batch_processing\\batch_processing\\piantou\\"+projectFilename+".txt",arctle.toString());
        }

    }


    /**
     * 获取文件路径中的后缀名
     * @param filePath 完整的文件路径
     * @return 文件的后缀名，不包括点（例如："txt"）
     */
    public static String getFileExtension(String filePath) {
        if (filePath == null || filePath.isEmpty()) {
            return "";
        }

        int dotIndex = filePath.lastIndexOf('.');
        if (dotIndex == -1 || dotIndex == filePath.length() - 1) {
            // 没有找到后缀名或者文件名以点结尾
            return "";
        }

        return filePath.substring(dotIndex + 1);
    }


}
